home *** CD-ROM | disk | FTP | other *** search
/ Gamers Delight 2 / Gamers Delight 2.iso / Aminet / game / role / Omega802_bin.lha / omega / docs / readme3 < prev    next >
Text File  |  1994-06-20  |  8KB  |  190 lines

  1. omega implementor's notes.
  2.  
  3. Version 0.80
  4.  
  5. This version is a bugfixed version of 0.75. Hopefully not many bugs
  6. still remain - I tried to be fairly thorough.
  7.  
  8. Notes on Game Structure:
  9.  
  10. I'm now keeping track of the last edit in date.h -- if you hack
  11. omega, you might conceivably want to do the same. The #definition
  12. of LAST_OMEGA_EDIT_DATE is printed by the 'V' command....
  13.  
  14. NB.  Since Laurence isn't working on omega any more, the following
  15. wishlists are unlikely to be fulfilled,.. oh well.  I'm leaving them
  16. in so that enthusiastic future generations can be inspired and perhaps
  17. complete some of the ideas.
  18.  
  19. Right now the structure of guilds, dungeons, quests, etc. is not
  20. really the way I want it. The player winds up doing basically all the
  21. same things each game, no matter which guild he may be in, because
  22. there is not enough detail to the world of omega. It is a LOT of
  23. painstaking work to sort out threads of narrative structure (such as
  24. for example the beginning attempts I've made with the LawBringer and
  25. the way he interacts with the Circle of Sorcerors and the Order of
  26. Paladins).
  27.  
  28. Theoretically, one need not do any questing at all to become a Total
  29. Winner (ie, become an adept); this is also not desirable.
  30.  
  31. There are any number of ways to mechanically "crack" the game, i.e.,
  32. to do something to take advantage of omega for the player's benefit in
  33. some deviant way. At least you can't drop a 32 bit number of negative
  34. gold pieces like in hack.... Anyhow, making sure these loopholes are
  35. filled is a low priority except when they are really blatant; I'd much
  36. rather enhance game play for people who don't cheat....
  37.  
  38. At the moment I have several goals for the next major version of
  39. omega (1.00):
  40.  
  41.     * Enhanced game structure -- more dungeons, more detail
  42.     within guilds, pristhoods, etc. that will make the game
  43.     very different for different characters.
  44.  
  45.     * More player interaction. I still don't intend to have
  46.     omega be an online multiplayer game, but it would be nice
  47.     to have more effect on the game from the actions of 
  48.     previous characters.
  49.  
  50.     * X and/or NeWS and/or Sunview II front-end(s). It would be nice
  51.     to have a separate inventory window, be able to click destinations,
  52.     have monster and terrain fonts, etc. If I get really
  53.     overexcited, how about a perspective view of the dungeon....
  54.  
  55. As always, I welcome suggestions. It is very easy to add more monsters,
  56. magic items, magic spells, etc....
  57.  
  58. Notes on the Code:
  59.  
  60. As far as I can tell, all this should work on any Unix* system, but
  61. I've never tried it on anything but a Sun, not having enough disk
  62. space to my name anywhere else to try.... It uses curses for I/O, and
  63. tries to use as few OS-dependent functions as it can elsewhere. It
  64. should be pretty easy to port to any Unix* variant that has curses.
  65. omega has now been implemented not only on Suns, Vaxen, and Pyramids,
  66. but even on machines such as Amdahls running unix over the normal
  67. operating system. The current version has #ifdef's for MSDOS,
  68. courtesy nathan@brokaw.lcs.mit.edu. Unfortunately, this makes
  69. the code harder to read, but such is life.
  70.  
  71. Identifier Convention:
  72. UPPERCASE CONSTANTS are all #defined in defs.h
  73. Capitalized Globals are all defined in omega.c and externally declared in
  74.     glob.h
  75. other identifiers are lowercase
  76.  
  77. I have attempted to keep extremely system-dependent stuff segregated
  78. from the rest of the code.
  79.  
  80. For example, all screen manipulation functions are in scr.c, for
  81. those of you who want to port omega to something that doesn't have
  82. curses. (Well, there's a little in file.c)
  83.  
  84. Almost all file manipulation is done in file.c, and I have attempted
  85. to keep this simple and consistent.
  86.  
  87. A few other system calls are in omega.c and util.c, and that's about it.
  88.  
  89. Unfortunately, commenting is pretty minimal, mostly stupid things like:
  90.  
  91.   /* this routine shows a monster */
  92.   void showmonster(m)
  93.  
  94. ...and abstruse reminders to myself. As I clean the code up for the
  95. final release version, this will improve. I usually try to avoid
  96. cleverness in my c code, preferring two assignments and an if
  97. statement to a single complex line with three nested conditional
  98. expressions. Still, there are some places where the code is pretty
  99. opaque... sorry about that. Also, I will probably switch over
  100. to ANSI style c pretty soon.
  101.  
  102. Each module has a short description of its contents at the top, and
  103. mostly functions tend to stay where it is reasonable to find them.
  104. There are a few grab-bag modules, though, such as oaux1, oaux2 and
  105. oaux3 (utility functions for ocom and other modules), oetc (total
  106. grab-bag), and outil (mostly more general utility functions used by
  107. everything).  To save on module size, I have broken a couple of
  108. modules (such as ocom and osite) into pieces. I never got around to
  109. stating precisely which functions that used to be in ocom are now in
  110. ocom1, ocom2, or ocom3, but grep and ^s always work.... Anyhow,
  111. one of these days I will clean up. Really.
  112.  
  113. oextern has all the function prototype declarations.
  114.  
  115. defs.h has all the CPP stuff, structure definitions, and typedefs.
  116.  
  117. glob.h has all the external global variable declarations, and
  118. also includes the preceding two header files.
  119.  
  120. Those of you wishing to port omega to machines without virtual memory
  121. will probably want to keep only one dungeon level in memory at a time;
  122. you ought to be able to use the save_level and restore_level routines
  123. in lev.c to get that working. A lot of memory (primary and
  124. secondary), is currently required to play a full game; you could
  125. probably run for a while with a good deal less, though. However,
  126. you'll need a good deal of disk space if you don't have a lot of
  127. memory; it's just not practicable to play with under several meg of
  128. combined memory and disk space. Actually, I should probably make
  129. up standard #define to save all levels but the current one to disk
  130. as an option (rendering the moria-like lossage of previously entered
  131. dungeons nugatory), but see the previous note about laziness....
  132.  
  133. KNOWN BUGS AND MISFEATURES: 
  134.  
  135.     * It is occasionally possible to destroy a game on save/restore;
  136.     you save, and on restore you get a core dump signal. Sometimes
  137.     when you save again it goes away; sometimes it doesn't.
  138.  
  139.     * Sometimes there seems to be an (unintentional) party room
  140.     effect in some rooms in dungeon levels, ie, a bunch of monsters
  141.     are having a party. I am not certain why this happens, but
  142.     I guess it's just another one of the risks the adventurer takes...
  143.  
  144.     * The high score file occasionally gets destroyed - I presume this
  145.     is a simultanious update problem.  I've put in file locking, and
  146.     I hope this will rectify the problem... time will tell.
  147.  
  148.     * I've had reports of the clock in the upper right-hand side of
  149.     the screen vanishing, and not reappearing even if the game is
  150.     saved and then restored.  I've been unable to duplicate this,
  151.     and so can't really address the problem, although I've restructured
  152.     the display routines to make it cleaner - that may have some
  153.     positive effect...
  154.  
  155.     * As far as I know (ha ha), there aren't any core dump bugs
  156.     in actual play at the moment.
  157.  
  158. UNKNOWN BUGS:
  159.  
  160. There are an awful lot of features and the number of game states you
  161. can get into is very large. In addition, many of the more
  162. "interesting" bugs will probably only occur after long periods of play
  163. since the "higher level" a feature, effect, or state is, the less
  164. it's probably been tested. While I have not encountered any
  165. core-dump bugs recently, there undoubtably are some, not to mention
  166. lesser problems such as hacks to get high scores mechanically,
  167. misfeatures, poor game interface occasions, etc.
  168.  
  169. I am always anxious to hear about any problems you have had with
  170. omega, be they problems with compilation, gameplay, or whatever.
  171. Suggestions for fixes are always welcome, as are wish-lists for
  172. additional features. The most useful things are new monsters, new
  173. items, and new magical effects, as these can be added without
  174. disrupting existing features.
  175.  
  176. I hope you enjoy the game.
  177.  
  178. -Laurence,
  179.  
  180.              Laurence R. Brothers
  181.               brothers@paul.rutgers.edu
  182.             {anywhere}!rutgers!paul.rutgers.edu!brothers
  183.                "One life -- one arrow."
  184.  
  185.     (see the comment in COMPILE.ALL re: questions about omega)
  186.  
  187. * Ha, I bet you were expecting some different message. Well, this is not
  188. a commercial document or a public net announcement, so I don't see
  189. why I have to credit Bell Labs or UCB. So there.
  190.